Field of the Invention
The present invention generally relates to computer graphics and, more specifically, to render-assisted compression for remote graphics.
Description of the Related Art
Remote rendering is a technique for rendering graphics images on a server and transmitting the images to a client device via an intervening data network. Multiple servers may operate from a controlled machine room environment to provide highly reliable service to many different client devices. Each server may be a relatively high-end computing platform with high-performance CPUs and GPUs, fast access to large arrays of on-line storage, and high-speed local networking to other servers that may be, for example, participants in a distributed application. Each server is typically configured to provide significantly more processing, storage, and internetworking capacity than a typical client device, while each client device is configured to provide networking connectivity, certain graphics functions, and a display system. A client device may be portable or mobile and provide a highly convenient user experience.
In one conventional remote rendering technique, a server renders both a high-quality image and a low-quality image for each frame, and transmits a difference image for the frame. A client device renders just the low-quality image and uses the difference image to reconstruct a high-quality image. In certain scenarios and for certain specific frames, this technique requires less network bandwidth than simply transmitting a conventionally compressed high-quality image. In some scenarios, the client device requires more power to perform image reconstruction on a certain frame than conventional image decompression requires for the same frame. One significant disadvantage of this technique is that little advantage is gained, if any, relative to conventionally compressing and transmitting each frame.
Other techniques involve image warping and spatial and temporal up-sampling of transmitted data. However, these techniques conventionally require explicit application-level control of processing, limiting general applicability.
As the foregoing illustrates, what is needed in the art is an efficient technique for remote rendering.